package br.facet.bean;

import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import br.facet.dao.LoginDAO;
import br.facet.pojo.Login;
import br.facet.utils.WebUtils;

@ManagedBean(name = "LoginBean")
@RequestScoped
public class LoginBean {

	private Integer idLojaSelecionada;
	public Integer getIdLojaSelecionada() {
		return idLojaSelecionada;
	}



	public void setIdLojaSelecionada(Integer idLojaSelecionada) {
		this.idLojaSelecionada = idLojaSelecionada;
	}



	Login login = new Login();
	LoginDAO lgnDAO = new LoginDAO();
	
	private Date dataAtual;  
	  
	   public void buscarDataAtual(ActionEvent e) {  
	       setDataAtual(new Date());  
	   }  

	
	
	public String getPegarUsuario(){
		String user = null;
		lgnDAO.getSession().setAttribute("usuario", login.getUsuario());
		user = (String) lgnDAO.getSession().getAttribute("usuario");
		
		return user;
	}
	
	public String incluirLogin() throws Exception {
		lgnDAO.salvar(login);
		return "sucesso";
	}

	public String autenticar(ActionEvent actionEvent) {
		String retorno = null;
		FacesContext context = FacesContext.getCurrentInstance();

		try {
			if ("sucesso".equals(lgnDAO.autenticar(login.getUsuario(), login.getSenha()))) {
				context.addMessage(null, new FacesMessage("Login Realizado!", "Seja Bem-Vindo " + login.getUsuario()));
				retorno = "index";
				WebUtils.setValor("usuario-logado", login.getUsuario());
				WebUtils.setValor("loja-selecionada", this.idLojaSelecionada);
			    FacesContext.getCurrentInstance().getExternalContext().redirect("index.jsf");  
			} else {
				context.addMessage(null, new FacesMessage("Erro!", "Erro ao autenticar. Tente novamente!"));
				retorno = "index";
				FacesContext.getCurrentInstance().getExternalContext().redirect("index.jsf");
			}
		} catch (Exception e) {
			context.addMessage(null, new FacesMessage("Erro!", "Erro ao autenticar. Tente novamente!"));
			retorno = "index";
		}
		return retorno;
	}
	
	public Login getLogin() {
		return login;
	}

	public void setLogin(Login login) {
		this.login = login;
	}

	public Date getDataAtual() {
		return dataAtual;
	}

	public void setDataAtual(Date dataAtual) {
		this.dataAtual = dataAtual;
	}
}